package userEntity

import (
	"github.com/goravel/framework/database/orm"
	"goravel/app/models/systemEntity"
)

type User struct {
	orm.Model
	Account            string                        `json:"account" gorm:"column:account" form:"account"`                                        // 用户账号
	Pwd                string                        `json:"pwd" gorm:"column:pwd" form:"pwd"`                                                    // 用户密码
	RealName           string                        `json:"real_name" gorm:"column:real_name" form:"real_name"`                                  // 真实姓名
	Birthday           string                        `json:"birthday" gorm:"column:birthday" form:"birthday"`                                     // 生日
	CardId             string                        `json:"card_id" gorm:"column:card_id" form:"card_id"`                                        // 身份证号码
	Mark               string                        `json:"mark" gorm:"column:mark" form:"mark"`                                                 // 用户备注
	PartnerId          int64                         `json:"partner_id" gorm:"column:partner_id" form:"partner_id"`                               // 合伙人id
	GroupID            int64                         `json:"group_id" gorm:"column:group_id" form:"group_id"`                                     // 用户分组id
	Nickname           string                        `json:"nickname" gorm:"column:nickname" form:"nickname"`                                     // 用户昵称
	Avatar             string                        `json:"avatar" gorm:"column:avatar" form:"avatar"`                                           // 用户头像
	Phone              string                        `json:"phone" gorm:"column:phone" form:"phone"`                                              // 手机号码
	AddTime            int64                         `json:"add_time" gorm:"column:add_time" form:"add_time"`                                     // 添加时间
	AddIp              string                        `json:"add_ip" gorm:"column:add_ip" form:"add_ip"`                                           // 添加ip
	LastTime           int64                         `json:"last_time" gorm:"column:last_time" form:"last_time"`                                  // 最后一次登录时间
	LastIp             string                        `json:"last_ip" gorm:"column:last_ip" form:"last_ip"`                                        // 最后一次登录ip
	NowMoney           float64                       `json:"now_money" gorm:"column:now_money" form:"now_money"`                                  // 用户余额
	BrokeragePrice     float64                       `json:"brokerage_price" gorm:"column:brokerage_price" form:"brokerage_price"`                // 佣金金额
	Integral           int64                         `json:"integral" gorm:"column:integral" form:"integral"`                                     // 用户剩余积分
	Exp                float64                       `json:"exp" gorm:"column:exp" form:"exp"`                                                    // 会员经验
	SignNum            int64                         `json:"sign_num" gorm:"column:sign_num" form:"sign_num"`                                     // 连续签到天数
	SignRemind         int8                          `json:"sign_remind" gorm:"column:sign_remind" form:"sign_remind"`                            // 签到提醒状态
	Status             int64                         `json:"status" gorm:"column:status" form:"status"`                                           // 1为正常，0为禁止
	Level              int64                         `json:"level" gorm:"column:level" form:"level"`                                              // 等级
	AgentLevel         int64                         `json:"agent_level" gorm:"column:agent_level" form:"agent_level"`                            // 分销等级
	SpreadOpen         int64                         `json:"spread_open" gorm:"column:spread_open" form:"spread_open"`                            // 是否有推广资格
	SpreadUid          int64                         `json:"spread_uid" gorm:"column:spread_uid" form:"spread_uid"`                               // 推广元id
	SpreadTime         int64                         `json:"spread_time" gorm:"column:spread_time" form:"spread_time"`                            // 推广员关联时间
	UserType           string                        `json:"user_type" gorm:"column:user_type" form:"user_type"`                                  // 用户类型
	IsPromoter         int64                         `json:"is_promoter" gorm:"column:is_promoter" form:"is_promoter"`                            // 是否为推广员
	PayCount           int64                         `json:"pay_count" gorm:"column:pay_count" form:"pay_count"`                                  // 用户购买次数
	SpreadCount        int64                         `json:"spread_count" gorm:"column:spread_count" form:"spread_count"`                         // 下级人数
	CleanTime          int64                         `json:"clean_time" gorm:"column:clean_time" form:"clean_time"`                               // 清理会员时间
	Addres             string                        `json:"addres" gorm:"column:addres" form:"addres"`                                           // 详细地址
	Adminid            int64                         `json:"adminid" gorm:"column:adminid" form:"adminid"`                                        // 管理员编号
	LoginType          string                        `json:"login_type" gorm:"column:login_type" form:"login_type"`                               // 用户登陆类型，h5,wechat,routine
	RecordPhone        string                        `json:"record_phone" gorm:"column:record_phone" form:"record_phone"`                         // 记录临时电话
	IsMoneyLevel       int8                          `json:"is_money_level" gorm:"column:is_money_level" form:"is_money_level"`                   // 会员来源  0: 购买商品升级   1：花钱购买的会员2: 会员卡领取
	IsEverLevel        int8                          `json:"is_ever_level" gorm:"column:is_ever_level" form:"is_ever_level"`                      // 是否永久性会员  0: 非永久会员  1：永久会员
	OverdueTime        int64                         `json:"overdue_time" gorm:"column:overdue_time" form:"overdue_time"`                         // 会员到期时间
	Uniqid             string                        `json:"uniqid" gorm:"column:uniqid" form:"uniqid"`                                           // 用户唯一值
	DivisionName       string                        `json:"division_name" gorm:"column:division_name" form:"division_name"`                      // 事业部/代理商名称
	DivisionType       int8                          `json:"division_type" gorm:"column:division_type" form:"division_type"`                      // 代理类型：0普通，1事业部，2代理，3员工
	DivisionStatus     int8                          `json:"division_status" gorm:"column:division_status" form:"division_status"`                // 代理状态
	IsDivision         int8                          `json:"is_division" gorm:"column:is_division" form:"is_division"`                            // 事业部状态
	IsAgent            int8                          `json:"is_agent" gorm:"column:is_agent" form:"is_agent"`                                     // 代理状态
	IsStaff            int8                          `json:"is_staff" gorm:"column:is_staff" form:"is_staff"`                                     // 员工状态
	DivisionId         int64                         `json:"division_id" gorm:"column:division_id" form:"division_id"`                            // 事业部id
	AgentId            int64                         `json:"agent_id" gorm:"column:agent_id" form:"agent_id"`                                     // 代理商id
	StaffId            int64                         `json:"staff_id" gorm:"column:staff_id" form:"staff_id"`                                     // 员工id
	DivisionPercent    int64                         `json:"division_percent" gorm:"column:division_percent" form:"division_percent"`             // 分佣比例
	DivisionChangeTime int64                         `json:"division_change_time" gorm:"column:division_change_time" form:"division_change_time"` // 事业部/代理/员工修改时间
	DivisionEndTime    int64                         `json:"division_end_time" gorm:"column:division_end_time" form:"division_end_time"`          // 事业部/代理/员工结束时间
	DivisionInvite     int64                         `json:"division_invite" gorm:"column:division_invite" form:"division_invite"`                // 代理商邀请码
	UserLabels         []UserLabel                   `gorm:"many2many:eb_user_label_relation;joinForeignKey:UserID;joinReferences:LabelID" form:"user_labels" json:"user_labels"`
	SystemUserLevel    *systemEntity.SystemUserLevel `gorm:"foreignKey:Level;references:Grade" form:"system_user_level" json:"system_user_level"`
	orm.SoftDeletes
}

// TableName 表名称
func (*User) TableName() string {
	return "eb_user"
}
